ohibc logo
OHI British Columbia | OHI Science | Citation policy

1 Summary: OHIBC Species Subgoal (Biodiversity)

This script prepares scores (status and trend) for species richness in British Columbia’s coastal regions. Spatial data from IUCN and Aquamaps is combined with extinction risk information from IUCN and conservation rank info based on province-level NatureServe categories.

Currently, the Species Richness sub-goal model is identical to the OHI Global model: a region’s status is based upon an area-weighted average of species health across each BC reporting region.

From Halpern et al (2012):

The target for the Species sub-goal is to have all species at a risk status of Least Concern. We scaled the lower end of the biodiversity goal to be 0 when 75% species are extinct, a level comparable to the five documented mass extinctions and would constitute a catastrophic loss of biodiversity. The Status of assessed species was calculated as the area- and threat status-weighted average of the number of threatened species within each 0.5 degree grid cell.

Mean risk status per cell:

\[\bar{R}_{cell} = \frac{\displaystyle\sum_{species}(Risk)}{n_{spp}}\]

Mean risk status per region:

\[\bar{R}_{SPP} = \frac{\displaystyle\sum_{cells}(\bar{R}_{cell} * A_{cell} * pA_{cell-rgn})}{A_{rgn}}\]

Species goal model

\[X_{SPP} = \frac{((1 - \bar{R}_{SPP}) - 0.25)}{(1 - 0.25)} * 100%\]

where:


2 Data sources

AquaMaps

IUCN Red List spatial data: species range map shapefiles

IUCN Red List species index: list of all IUCN red list species, incl IUCN species ID and extinction risk category

NatureServe/BC CDC conservation rank info from BC Species and Ecosystems Explorer:

NOTE: Davies and Baum (2012) could potentially provide a small number of additional species, as in the California Current OHI, but for now we are not considering this in our assessment.


3 Methods

3.1 Load species lookup table from global SPP goal

Currently this uses the global species lookup table. How this list is generated (file locations are in ~/github/ohiprep/globalprep/SPP_ICO):

  • in ingest_iucn.R:
    • Pull full IUCN list from http://api.iucnredlist.org/index/all.csv
    • Filter the list to marine species as indicated on each species page
    • Standardize old extinction risk categories
    • Append population trend and parent/subpop info from species web pages
    • Write to spp_iucn_mar.csv in git-annex.
  • in spp_fxn.R::create_spp_master_lookup():
    • Pull in Aquamaps species information table, create sciname field and standardize categories
    • Pull in IUCN marine species info from ingest_iucn.R
    • full_join() the two species lists
    • Determine overall category, trend, and spatial info source (preferring IUCN)
    • Remove duplicate records and data-deficient records
    • Convert text extinction risk category and popn trends to number values
    • Identify parent/subpopulations and aliases within spatial_source field.

Variables in spp_all: am_sid | am_category | reviewed | sciname | name_verified | iucn_sid | iucn_category | popn_trend | parent_sid | subpop_sid | popn_category | info_source | spp_group | id_no | iucn_subpop | presence | spatial_source | category_score | trend_score

Quick glance at global spp_all dataframe:
sciname am_sid iucn_sid popn_trend popn_category spatial_source
Abalistes filamentosus Fis-156671 NA NA NA am
Abalistes stellaris Fis-53544 NA NA NA am
Abalistes stellatus Fis-142700 NA NA NA am
Ablabys taenianotus Fis-27725 NA NA NA am
Ablennes hians Fis-22975 13486514 Unknown LC am
Abudefduf abdominalis Fis-26241 NA NA NA am

3.2 Append BC-specific species risk assessment codes

Data downloaded from BC Species and Ecosystems Explorer includes information on global status and provincial status for species, as assessed by NatureServe.

See this table for info on NatureServe codes

spp_all <- spp_append_bcsee(spp_all)

spp_all <- spp_all %>%
  mutate(iucn_score = category_score,
         category_score = ifelse(!is.na(status_pr_score), status_pr_score, category_score)) %>%
  filter(!is.na(category_score))

write_csv(spp_all, file.path(dir_spp, scenario, 'int/spp_all.csv'))

# DT::datatable(spp_all %>% 
#                 dplyr::select(sciname, am_sid, iucn_sid, popn_trend, 
#                        IUCN_cat = popn_category, NS_cat = status_pr, spatial_source) ,
#               rownames = FALSE,
#               caption = 'BC-specific species list:',
#               class = 'stripe hover compact',
#               options  = list(dom = 'tp'))

3.3 Define assessment regions

Using OHIBC region polygons, determine 0.5° raster cells corresponding to each region.

## Reading OHIBC regions shapefile...
##   ~/github/ohibc/prep/regions/ohibc_rgn_wgs84.shp

3.3.1 Map of region ID per cell

Note that subs() can’t deal with duplicate cell IDs; for cells included in two or more regions, displaying the minimum region ID value


3.4 Generate species per cell tables for Aquamaps and IUCN

These species-per-cell tables are generated from global SPP goal data, from AquaMaps data and IUCN range maps, filtered to just OHIBC regions.

3.4.1 Map of species count by cell


4 Calculate goal model

4.1 Summarize mean category & trend per cell & region

In this section we perform the model calculations:

  • We calculate mean extinction risk score across all species identified in each cell, based on NatureServe province-level rankings where available, and IUCN category ranks elsewhere.
    • IUCN ranks exclude subpopulation scores due to lack of spatially explicit distribution info for subpopulations.
  • We calculate mean population trend across all species identified in each cell, based on IUCN population trend information.
  • From raster-level summaries, we generate a region-level summary based on area-weighted average extinction risk and population trend.
  • From the region-level summary of risk, we determine the SPP goal status based on the goal model equation. SPP trend is identical to the regional average population trend score.

4.1.1 Map of mean extinction risk category value by cell

Category value range: least concern = 0, extinct = 1


4.2 Create and save final output files

Status and trend layers saved to data folder.

## Writing SPP status and trend based only on IUCN categories to:
##   ~/github/ohibc/prep/spp_ico/v2016/data/spp_status.csv
##   ~/github/ohibc/prep/spp_ico/v2016/data/spp_trend.csv

4.2.1 Plot map of status by region

The maps and tables show status based upon rankings from NatureServe (where available) and IUCN (where NatureServe is not available). Currently no trend information is taken from NatureServe, so trend is based entirely on IUCN rankings.


4.3 Summarize mean category/trend within 3 nm of shore

Create final outputs for 3nm zone for resilience calculations. In this step, rather than using full assessment regions, only the three-nautical-mile offshore zone is examined.

## Reading OHIBC 3nm offshore regions shapefile...
##   ~/github/ohibc/prep/regions/ohibc_offshore_3nm_wgs84.shp
## Writing SPP status and trend for 3nm regions to:
##   ~/github/ohibc/prep/spp_ico/v2016/data/spp_status_3nm.csv
##   ~/github/ohibc/prep/spp_ico/v2016/data/spp_trend_3nm.csv

5 Provenance

Provenance summary for run 15: standard run (Fri Apr 8 13:38:51 2016)
file_name file_dir filetype uncomm_chgs commit_id
poly_plot_scores.R /Users/ohara/github/ohibc/src/R sourced_script TRUE 7422a5
spp_fxn.R /Users/ohara/github/ohibc/prep/spp_ico/R sourced_script TRUE 3c980d
am_cells_spp_prob0.csv /Users/ohara/github/ohibc/prep/spp_ico/v2016/int input FALSE d59d0f
cell_id_by_rgn_3nm.csv /Users/ohara/github/ohibc/prep/spp_ico/v2016/int input FALSE d59d0f
cell_id_by_rgn.csv /Users/ohara/github/ohibc/prep/spp_ico/v2016/int input FALSE d59d0f
iucn_cells_v2016.csv /Volumes/data_edit/git-annex/globalprep/_raw_data/iucn_spp input TRUE NA
ohibc_offshore_3nm_wgs84.shp /Users/ohara/github/ohibc/prep/regions input FALSE d59d0f
ohibc_rgn_wgs84.shp /Users/ohara/github/ohibc/prep/regions input FALSE d59d0f
spp_all_cleaned.csv /Volumes/data_edit/git-annex/globalprep/SPP_ICO/v2016/int input TRUE NA
spp_sum_am_cells.csv /Users/ohara/github/ohibc/prep/spp_ico/v2016/summary input FALSE 7422a5
spp_sum_iucn_cells.csv /Users/ohara/github/ohibc/prep/spp_ico/v2016/summary input FALSE 7422a5
cell_spp_summary_by_loiczid.csv /Users/ohara/github/ohibc/prep/spp_ico/v2016/summary output FALSE d251c1
rgn_summary_3nm.csv /Users/ohara/github/ohibc/prep/spp_ico/v2016/summary output FALSE d251c1
rgn_summary.csv /Users/ohara/github/ohibc/prep/spp_ico/v2016/summary output FALSE d251c1
spp_all.csv /Users/ohara/github/ohibc/prep/spp_ico/v2016/int output FALSE d251c1
spp_status_3nm.csv /Users/ohara/github/ohibc/prep/spp_ico/v2016/data output FALSE d251c1
spp_status.csv /Users/ohara/github/ohibc/prep/spp_ico/v2016/data output FALSE d251c1
spp_trend_3nm.csv /Users/ohara/github/ohibc/prep/spp_ico/v2016/data output FALSE d251c1
spp_trend.csv /Users/ohara/github/ohibc/prep/spp_ico/v2016/data output FALSE d251c1
data_prep_spp.Rmd /Users/ohara/github/ohibc/prep/spp_ico script TRUE 0d3828